Non-volatile memory, such as flash memory, have been widely adopted for use in consumer products. Flash memory may be found in different forms, for example in the form of a portable memory card that can be carried between host devices or as a solid state disk (SSD) embedded in a host device. Flash memory devices can enhance data storage density by storing multiple bits in each flash memory cell. For example, Multi-Level Cell (MLC) flash memory devices can provide increased storage density by storing 3 bits per cell, 4 bits per cell, or more.
Storing multiple bits of information in a single flash memory cell typically includes mapping sequences of bits to states of the flash memory cell. For example, a first sequence of bits “110” may correspond to a first state of a flash memory cell and a second sequence of bits “010” may correspond to a second state of the flash memory cell. After determining that a sequence of bits is to be stored into a particular flash memory cell, the particular flash memory cell may be programmed to a state (e.g., by setting a threshold voltage) that corresponds to the sequence of bits.
Once memory cells in a data storage device have been programmed, data may be read from the memory cells by comparing the cell read out voltage to one or more read voltage thresholds, each of which corresponds to a different state. These read voltage thresholds may vary between memory cells or groups of memory cells (e.g., blocks of cells). Thus, a device may be configured to store, for each memory cell or group of cells, a set of read voltage thresholds to be used for the particular memory cell or group of cells. Such voltage thresholds can form part of a set of operating parameters for the memory cell or group of cells. Various other operating parameters may also vary among cells or groups of cells, and be stored as operating parameters for the cell or group. To reduce the memory necessary to store operating parameters and reduce computing requirements necessary to apply operating parameters when reading from or writing to a cell or cell group, the device may limit the total number of unique sets of operating parameters, such that multiple cells or cell groups share a common set of operating parameters applied when reading from or writing to the cells or cell groups. Operating parameter sets may therefore attempt to represent an overall “best fit” for the cells or cell groups to which they are applied, rather than representing optimal operating parameters for each such cell or cell group.